记录秋招部分公司的面经

昆仑万维

一面

  1. 自我介绍
  2. 你会怎么和别人讲解 ESbuild?
  3. 说一说 ES Module
  4. ES Module 可以 import css 文件吗?
  5. 那为什么 Vue 的入口文件通常可以导入 css 文件呢?
  6. 既然说到了 ES6 的 import,那它和 Nodejs 的 require 有什么区别吗?
  7. 既然说到了 import(),那调用它之后返回的是什么?
  8. 那说一说 promise、generator、async await 吧,比较喜欢哪个?为什么?
  9. JS 是单线程还是多线程?线程和进程的区别是什么?
  10. 既然说到微任务,那简单讲一讲事件循环机制的工作过程吧?
  11. 平时怎么用 webpack 进行性能优化的?(使用 webpack-bundle-analyzer 分析 bundle 构成,利用 splitChunks 抽离公共代码等)
  12. 换个基础一点的吧,JS 的数据类型有哪些?
  13. 存在栈里面还是堆里面?
  14. 既然说到堆栈,那么对于闭包,你有什么不一样的理解吗?
  15. 说到了内存泄漏,那顺便谈一谈垃圾回收机制吧?
  16. 这些知识你在哪里学习的?
  17. 说到了 V8 引擎,那 JIT 你了解过吗?
  18. 开发小程序的时候有使用过什么第三方框架吗?
  19. 关于小程序的性能优化,有了解过分包加载吗?
  20. 双向数据绑定的原理了解过吗?
  21. 有了解过发布-订阅模式和观察者模式吗?

招银网络科技

一面

  1. 做题:找出数组中重复的数字
  2. 自我介绍,为什么选择学习前端
  3. 有学过后端语言吗?数据库呢?
  4. 说一说 ES6 的新特性,比较喜欢哪个
  5. 说一说 http/2.0 的新特性
  6. 这些新特性你有在实际项目中使用过吗?
  7. 实现三列布局有哪些方法?简单介绍一下思路
  8. 有用过 grid 布局吗
  9. 简历上有提到 webpack,除了作为打包构建工具之外,还用它做过什么
  10. Vue 怎么实现多页面共享数据

二面

  1. 自我介绍
  2. 介绍一下最近做的一个项目
  3. CSS 常用的选择器和权重关系
  4. CSS 浮动会带来什么问题,如何解决
  5. 事件冒泡和事件委托的区别是什么
  6. http 的常用状态码有哪些
  7. https 的原理是什么
  8. 主要用 webpack 做什么
  9. 讲一下一些性能优化的常用方法
  10. 说一说 URL 输入到展示页面的过程
  11. 怎么看待加班问题
  12. 如果协调紧急任务

hr面

  1. 自我介绍,为什么选择学习前端
  2. 为什么不考研
  3. 平时是怎么学习技术的
  4. 怎么评价自己,优缺点是什么
  5. 你期望的公司技术氛围和文化氛围是怎么样的
  6. 对招银有了解吗
  7. 职业规划
  8. offer 情况
  9. 怎么看待加班

百度

一面

  1. 自我介绍
  2. ES6 用的多吗?有什么新语法?
  3. 最近学习的新技术
  4. 做题:提取 url 中的键值对,需要考虑 key 重复的情况
  5. 做题:看代码猜 this 指向
  6. script 声明 async 和 defer 有什么区别
  7. 怎么解决跨域
  8. JSONP 的原理是什么
  9. load 和 DOMContentLoaded 的区别是什么
  10. Vue2 和 Vue3 的区别
  11. 说一下 Vue 的响应式原理
  12. computed 和 watch 的区别
  13. 说一说对虚拟 DOM 的理解
  14. 项目是怎么实现响应式的
  15. 对 web 安全了解吗
  16. 说一下 XSS

二面

  1. 做题:寻找出现次数最多的三个标签
  2. 做题:模拟实现一下 console.log
  3. 一面好像问了 XSS,你举个例子吧
  4. 不要用 CSP 的话怎么解决这个问题?HTML 转义为什么不能解决?用 Vue 的话怎么解决?
  5. 项目用的 fastclick 是干嘛的?
  6. v-text 和 v-html 什么区别
  7. 说一说自己的项目,为啥做这个
  8. 遇到什么难点

字节跳动

一面

  1. 对 https 的根证书是怎么理解的
  2. 说一下 TLS 握手的过程
  3. 实现 JSON.stringify 的时候要注意什么
  4. 它的第二个参数是什么作用
  5. get 和 post 有什么本质区别
  6. 对 DOM 的 api 了解吗?获取子元素的 api 有哪些,getElementsByTagName 是元素调用还是 document 调用?
  7. 做题:看代码说 this 指向
  8. 做题:看异步代码说打印顺序
  9. 对 CSS 的权重是怎么理解的?和数量有关系吗?
  10. 说一下 margin 塌陷,怎么解决
  11. 说一下常用的定位和特点
  12. 不用 sticky 定位如何实现滚动吸顶效果
  13. 做题:二维数组,求按照对角线进行打印的结果
  14. 做题:二维数组,1 表示海岛,0 表示海,求最大的海岛面积

小米

一面

  1. 自我介绍
  2. 题目:promise 链式调用说打印顺序
  3. 题目:猜 this 指向,改成箭头函数再猜一遍
  4. 题目:十进制转二进制,小数保留四位
  5. 题目:输入 aaaabbbccd,输出 a4b3c2d
  6. 题目:反转链表
  7. 题目:99 个黑球和 1 个白球,摸三次不放回,能摸到白球的概率是多少
  8. flex:1 的含义
  9. max-width、width、flex-basis 三个属性的优先级
  10. 浏览器渲染页面的过程
  11. CommonJS 和 ES Module 的区别,CommonJS 是否可以在浏览器中使用
  12. 简单解释一下 tree-shaking
  13. tree-shaking 的原理,如何分析出某些代码属于冗余代码
  14. 说一下项目中最复杂的问题,如何解决的

二面

  1. 自我介绍
  2. 简单介绍一下项目的功能和具体分工
  3. 如何检测和防御 XSS 攻击
  4. 响应式效果是怎么实现的,rem 和 vw 更倾向于哪一种?rem+vw 的方式有什么缺点?
  5. 项目部署的大概流程
  6. 部署项目的时候怎么实现端口重定向
  7. 对 CDN 是怎么理解的
  8. http/2 的新特性,哪些对性能优化是有作用的
  9. https 和证书的作用
  10. hash 模式和 history 模式的区别,history 模式下刷新会发生什么事
  11. 如果刷新后不想跳转到首页,而是恢复之前的路由,应该怎么做
  12. 有一些列表项,key 是固定的,点击按钮后它们会重新排序,diff 算法在这个过程中做了什么事
  13. 对浏览器缓存的理解,再次请求资源的时候,缓存怎么发挥作用
  14. 如果资源经常改动的话,缓存策略怎么设置比较好
  15. 除了上面这些,还有什么其它的性能优化方案
  16. 代码压缩具体是怎么做的
  17. 做题:实现 Promise.all 和 sleep 函数
  18. 做题:求任意一个数组的幂集

顺丰同城科技

一面

  1. 数组常用的方法和使用场景
  2. 浅拷贝和深拷贝的区别、实现方式
  3. 防抖、节流的区别和应用场景
  4. 浏览器的存储方案
  5. 负责了项目的哪些部分,登录模块是怎么做的
  6. 怎么解决回调地狱问题
  7. localStorage 怎么设置有效期
  8. 小程序通信方式、路由跳转方式有哪些
  9. 常见的打包构建工具有哪些,区别是什么
  10. Webpack 常用配置
  11. Webpack 如何进行性能优化
  12. React xxxx ?(忘记问了什么,我说没学过 React,于是改问了 Vue)
  13. Vue 的生命周期和应用场景
  14. Vue 有哪些事件修饰符
  15. Vue 组件通信方式有哪些
  16. 说一说 Vue 的 Mixin 和插槽
  17. 是否了解过 Vuex、westore 这些全局状态管理方案的底层原理
  18. Vue 双向绑定的原理是什么
  19. 说说虚拟 DOM 的渲染过程
  20. key 的原理是什么
  21. 平时是否有阅读源码的习惯
  22. 什么是跨域,如何解决跨域
  23. 开发小程序的时候有什么痛点,开发项目的时候遇到了哪些难点
  24. 项目放在 GitHub,平时会用哪些 git 命令
  25. 平时会去阅读英文技术文章吗
  26. 你觉得自己的优点和缺点是什么

二面

  1. 说一两个自己项目的难点和解决过程
  2. 不使用脚手架的话,怎么用 webpack 配置 vue 开发环境
  3. loader 和 plugin 的功能和区别
  4. loader 的调用顺序是怎么样的
  5. 是否了解过一些跨端开发的技术
  6. webpack 是怎么做热更新的
  7. 说一下 hash 模式和 history 模式
  8. vue-router 怎么基于这两种模式进行路由跳转
  9. 离开页面之前缓存数据,有哪些方法
  10. 从零开发一个项目,有哪些需要注意的地方
  11. 怎么排查首屏加载缓慢的问题?
  12. 场景题:用户不断滚动页面,导致页面出现大量 dom 元素,如何进行优化
  13. 场景题:设计秒杀系统,如何保证时间准确
  14. 做题:手撕字符串的 indexOf。还有哪些可以优化的地方

三面

  1. 介绍一下自己的前端学习路线
  2. 你觉得使用框架开发和原生开发有什么区别
  3. 好像模板引擎也能实现你说的这些优点,你对模板引擎是怎么看的
  4. 在 Vue 里面实现代码逻辑复用,你有什么好的方案吗
  5. Mixin 的优点应该很明显,你觉得它的缺点是什么
  6. 你会用 webpack 去做什么样的性能优化
  7. 对其它的打包工具你是怎么看的?比如 gulp、rollup、snowpack 这些
  8. 说一下打包配置里面 path 和 publicPath 的区别
  9. 如果要解析 sass 文件,需要哪些 loader
  10. 为什么 loader 的调用顺序是反过来写的,正常顺序书写不行吗
  11. 解释一下 tree-shaking ,它是基于什么实现的
  12. 有用 Vue3 写过组件吗,什么感觉
  13. 说一下 Vue3 和 Vue2 的主要区别
  14. Vuex 的单向数据流和 Vue 的双向数据绑定冲突吗,为什么
  15. 怎么看待 flux、redux 和 vuex
  16. 10000 条数据的数组,元素都是 1 到 5 的整数,怎么排序最好

58 同城

一面

  1. 为什么学习前端,你觉得前端可以用来做什么
  2. 最近一次系统学习的一个技术或者说比较难忘的问题是什么
  3. 平时是怎么学习的
  4. 项目的主要功能是什么,最复杂的地方是哪里
  5. 和另一个前端是怎么协调工作的
  6. 小程序是怎么发布的,编译打包在哪里进行
  7. 说一下常用的几种定位和特点
  8. 做题:找出数组中最大的 n 个偶数
  9. 页面渲染过程

二面

  1. 简单介绍一下自己的学习经历、项目和实习
  2. 关于项目的问题
  3. 要让一个元素不可见,有多少种方法?哪个会引起回流或者重绘?
  4. 做题:给定一个数组,求拍平+排序+去重的结果
  5. 为什么拍平的时候使用了 concat 而不是 push
  6. sort 排序为什么返回 -1

hr面

  1. 自我介绍
  2. 实习情况
  3. 为什么选择前端
  4. 说一下自己做过的项目,负责的东西
  5. 更倾向于去哪个城市工作
  6. offer 情况

cvte

一面

  1. 解释一下盒模型

  2. 说一下 ES6 的新特性。ES7、ES8 这些有了解过吗?

  3. bigInt 解决了什么问题,应用场景是什么?

  4. flex 布局和常用属性

  5. 闭包和优缺点

  6. 除了闭包之外,还有哪些场景会导致内存泄漏?如何检测?

  7. 说一下事件循环。为什么要设计微任务这个东西?如果只是避免代码阻塞的话,宏任务不行吗?

  8. 说一下浏览器的事件流模型。怎么阻止事件冒泡?

  9. 有了解过不同浏览器事件流模型的差异吗?为什么 Chrome89 之后修改了事件流模型?

  10. TCP 和 UDP 的区别,为什么 TCP 需要三次握手?

  11. 说一下浏览器的缓存机制

  12. 300 和 303 状态码是什么意思

  13. http/2 有哪些改进?

  14. 有哪些方式可以实现实时通信?轮询和 websocket 各自有什么缺点?

  15. 说一下页面渲染的过程,回流的话会从渲染流水线的哪个部分开始重新走一遍?

  16. 说一下 XSS 攻击和 CSRF 攻击,分别是怎么防御的?

  17. CSRF token 要放在哪里?放在 cookie 里面可以吗?

  18. 设计注册功能,如何在各个流程确保安全性?

  19. 使用 webpack 做过哪些优化?

  20. 客户端渲染和服务端渲染各有什么优缺点?

  21. 说一下快速排序和冒泡排序的复杂度以及实现

  22. 了解过 Nodejs 吗?

二面

  1. 职业发展规划

  2. 做过的项目说一下,性能方面做了哪些优化

  3. 了解过状态管理工具的原理吗?

  4. 平时有学习什么新技术吗?

  5. vite 和 webpack 相比有什么区别?缺点是什么?

  6. 说一下 webpack loader 的原理

  7. vue 子组件在设计上为什么不能修改父组件状态?

  8. 如何解决输入框输入频繁触发请求的问题?

  9. 手写题:写一个输入框,输入会进行防抖处理

  10. 改进1:可以打印输入的值

  11. 改进2:可以接受并打印其它参数

  12. 如何统计某个城市的小卖部数量

蔚来汽车

一面

  1. 自我介绍
  2. 说一下选择器的优先级,平时会倾向于使用哪种选择器?为什么?
  3. 行内元素设置 margin 和 padding 可以生效吗?
  4. 如何才能让垂直方向的 margin 生效?
  5. 隐藏一个元素有多少种方式?
  6. visibility:hiddenopacity:0 有什么区别?都可以触发事件吗?
  7. 判断数据类型有哪些方法?
  8. Object.prototype.toString.call() 的返回值是什么,具体代码实现说一下?
  9. 为什么这个方法要使用 call?call 还可以接受其它参数吗?这些参数要用到哪里?
  10. 如何实现 call 方法,call 方法调用之后会返回什么?
  11. 普通函数和箭头函数有什么区别?
  12. arguments 的结构是怎么样的?如何遍历?遍历的判断条件是什么?
  13. 说一下 cookie、localStorage 和 sessionStorage 的区别
  14. A 页面跳转到 B 页面,再跳转回 A 页面,sessionStorage 还存在吗?
  15. v-if 和 v-show 的区别,使用场景?
  16. 说一下 ref,返回的是什么,作用是什么,ref 可以重复吗?
  17. 组件传值的方式,跨组件传值除了 Vuex 和 EventBus 还有其它方法吗?
  18. 如果现在让你设计一个 UI 组件库,你会使用 vuex 还是手动管理数据?为什么?
  19. 使用懒加载的时候,如果用户滚动得特别快呢?那些图片也要全部加载吗?
  20. 防抖和节流的区别和思路
  21. 项目遇到的难题
  22. 想到哪个城市工作

蘑菇街

一面

  1. 介绍一下 JS 的模块化规范

  2. CommonJS 和 ES Module 有什么区别

  3. Babel 的作用和原理

  4. 为什么会出现跨域

  5. 如何解决跨域?除了服务端 CORS 解决,还有其它方法吗?

  6. 说一下从接收到 HTML 文件开始页面渲染的过程

  7. 解析 HTML 的时候遇到 script 标签会怎么处理?声明 async 和 defer 有什么区别?

  8. 解析 HTML 的时候遇到 link 标签和内联样式,分别会怎么处理?

  9. 解析样式和执行脚本可以同时进行吗?为什么?

  10. HTTP 和 HTTPS 的区别?

  11. 怎么防御 XSS 攻击和 CSRF 攻击

  12. Vue 数据响应式的原理

  13. 数据变化的时候怎么知道要更新哪些 DOM 元素?

  14. 做题:求多个数组区间的交集

  15. 项目中做的最好的一个地方

二面

  • 自我介绍
  • 参与了哪些开源项目
  • 介绍一下项目,负责项目的哪些部分
  • 项目的性能优化、难点
  • http 和 https 的区别
  • 为什么 https 要采用混合加密算法
  • 虚拟 DOM、diff 算法
  • 平时有关注什么新技术吗

袋鼠云

一面

  1. 自我介绍和项目
  2. 项目的性能优化是怎么做的
  3. 浏览器的存储机制和区别
  4. 字符串 split 方法的实现思路
  5. 对 webpack 的理解
  6. webpack 的 loader 是怎么添加 CSS 样式的,loader 返回的是什么
  7. 说一下页面渲染的过程
  8. Vue 数据响应式的原理
  9. 事件委托
  10. 用过 lodash 吗?说一下如何实现一个函数,比较两个对象是否完全相同
  11. 实现 JSON.parse的思路?基本类型怎么处理,对象和数组怎么处理
  12. 最近有看什么书吗

大华

一面

  1. 自我介绍
  2. http2 和 http1 的区别
  3. https 是如何保证安全性的
  4. 说一下强缓存和协商缓存
  5. let、const 和 var 有什么区别
  6. 场景题:后端返回了万条数据,一下子渲染出来很影响性能,如何解决?

二面

  1. 项目难点
  2. 场景题:如何解决 vue 监听的数据量很大的问题
  3. 场景题:首屏加载缓慢,如何排查
  4. 相关实践

驭势科技

一面

  1. Vue2 和 Vue3 的区别
  2. Proxy API 的缺点
  3. 解释浮动、绝对定位和 flex 布局
  4. 怎么清除浮动
  5. 闭包
  6. Webpack 的常用配置
  7. plugin 或者 loader 的原理
  8. 原型链的尽头是是什么
  9. 事件冒泡的过程和应用
  10. http 响应码有哪些
  11. 协商缓存的时候怎么知道资源是否改变
  12. Etag 或者 Last-Modified 具体是怎么发挥作用的,哪个更精确
  13. ETag 没有任何缺点吗?比如性能方面
  14. git push 和 git fetch 的区别